#include <stdio.h>

#include <string.h>



const int MaxCharLen=5;



int main(){

    

    //记录输入值

    char*** charArray;

    //各个字母的值

    int* num;

    int n,i,j,k,l;

    //加号位置

    int jiaIndex=-1;



    //几进制

    int max=0;



    scanf("%d",&n);

    charArray=new char**[n];

    num=new int[n];

    for(i=0;i<n;i++)

    {

        charArray[i]=new char*[n];

        for(j=0;j<n;j++)

        {

            charArray[i][j]=new char[MaxCharLen];

            scanf("%s",charArray[i][j]);

            

        }

    }

    //寻找加号位置

    for(i=0;i<n;i++)

    {

        if(charArray[i][i][0]=='+')

        {

            jiaIndex=i;

            break;

        }

    }



    //计算字母的数字

    for(i=0;i<n;i++)

    {

        if(i==jiaIndex)

        {

            continue;

        }

        num[i]=0;

        for(j=0;j<n;j++)

        {

            if(j==jiaIndex)

            {

                continue;

            }



            int len=strlen(charArray[i][j]);

            if(len>1)

            {

                num[i]++;

            }

        }



        if(max<num[i])

        {

            max=num[i];

        }

    }

	max++;



    // 做加法检查

    int flag=1;

    for(i=0;i<n;i++)

    {

        if(i==jiaIndex)

        {

            continue;

        }

        for(j=0;j<n;j++)

        {

            if(j==jiaIndex)

            {

                continue;

            }



            k=0;

            int cNum=0;

            while (charArray[i][j][k]!='\0')

            {

                for(l=0;l<n;l++)

                {

                    if(l==jiaIndex)

                    {

                        continue;

                    }

                    if(charArray[i][j][k]==charArray[jiaIndex][l][0])

                    {

                        cNum=cNum*max+num[l];

						break;

                    }

                }

                k++;

            }



            if(num[i]+num[j]!=cNum)

            {

                flag=0;

                break;

            }

            

        }



        if(flag==0)

        {

            break;

        }

    }



    if(flag==0)

    {

        printf("ERROR!\n");

    }

    else {

        j=0;

        for(i=0;i<n;i++)

        {

            if(i==jiaIndex){

                continue;

            }

            if(j>0)

            {

                printf(" ");

            }

            printf("%s=%d",charArray[jiaIndex][i],num[i]);

            j++;

            

        }



        printf("\n%d\n",max);

    }





    for(i=0;i<n;i++)

    {

        for(j=0;j<n;j++)

        {

            delete charArray[i][j];

        }

        delete charArray[i];

    }

    delete charArray;

    return 0;

}